package polymorphism;

import animal.B;
import animal.D;

/**
 * @author yuisama
 * @date 2022/04/27 19:09
 **/
public class Test {
    public static void main(String[] args) {
        // 2.作为类的使用者，程序的使用者
        // 没有向上转型，我要使用fun方法的话，我就得了解Animal以及其子类的所有对象
        // 我才能知道我到底调用的是谁
        Animal animal1 = new Bird();
        Animal animal2 = new Duck();
        Animal animal3 = new Dog();
        Animal animal4 = new Cat();
        fun(animal1);
        fun(animal2);
        fun(animal3);
        fun(animal4);
    }
    // 只要是Animal及其子类，都是天然的Animal对象，都满足is a关系
    // 通过Animal最顶层的父类引用，指代所有的子类对象。
    public static void fun(Animal animal) {
        animal.eat();
    }

    public static Animal test() {
        Bird bird = new Bird();
        return bird;
    }
}